home *** CD-ROM | disk | FTP | other *** search
- Frequently Asked Questions (FAQS);faqs.115
-
-
- completed, the slave will send mail to NOTIFY, which must
- be a legal mailing address on the slave. If a SIZE field
- will appear but the n option does not appear, NOTIFY will
- always be present, typically as the string "dummy" or
- simply a pair of double quotes.
- SIZE
- This field is only present when doing size negotiation,
- with Taylor UUCP, SVR4 UUCP, QFT or FSUUCP. It is the
- size of the file in bytes. SVR4 UUCP, QFT and FSUUCP send
- the size in base 16 as 0x.... while Taylor UUCP sends the
- size as a decimal integer (a later version of Taylor UUCP
- will probably change to the SVR4 behaviour).
-
- The slave then responds with an S command response.
- SY START
- The slave is willing to accept the file, and file transfer
- begins. The START field will only be present when using
- file restart. It specifies the byte offset into the file
- at which to start sending. If this is a new file, START
- will be 0x0.
- SN2
- The slave denies permission to transfer the file. This
- can mean that the destination directory may not be
- accessed, or that no requests are permitted. It implies
- that the file transfer will never succeed.
- SN4
- The slave is unable to create the necessary temporary
- file. This implies that the file transfer might succeed
- later.
- SN6
- This is only used by Taylor UUCP and FSUUCP size
- negotiation. It means that the slave considers the file
- too large to transfer at the moment, but it may be
- possible to transfer it at some other time.
- SN7
- This is only used by Taylor UUCP and FSUUCP size
- negotiation. It means that the slave considers the file
- too large to ever transfer.
- SN8
- This is only used by Taylor UUCP. It means that the file
- was already received in a previous conversation. This can
- happen if the receive acknowledgement was lost after it
- was sent by the receiver but before it was received by the
- sender.
-
- If the slave responds with SY, a file transfer begins. When the
- file transfer is complete, the slave sends a C command response.
- CY
- The file transfer was successful.
- CYM
- The file transfer was successful, and the slave wishes to
- become the master; the master should send an H command,
- described below.
- CN5
- The temporary file could not be moved into the final
- location. This implies that the file transfer will never
- succeed.
-
- After the C command response has been received (in the SY case) or
- immediately (in an SN case) the master will send another command.
-
- master: R FROM TO USER -OPTIONS SIZE
- The R and the - are literal characters. This is a request by the
- master to receive a file from the slave. I do not know how SVR4
- UUCP or QFT implement file transfer restart in this case.
- FROM
- This is the name of the file on the slave which the master
- wishes to receive. It must not be in the spool directory,
- and it may not contain any wildcards.
- TO
- This is the name of the file to create on the master. I
- do not believe that it can be a directory. It may only be
- in the spool directory if this file is being requested to
- support an execution either on the master or on some
- system other than the slave.
- USER
- The name of the user who requested the transfer.
- OPTIONS
- A list of options to control the transfer. The following
- options are defined (all options are single characters):
- d
- The master should create directories as necessary
- (this is the default).
- f
- The master should not create directories if
- necessary, but should fail the transfer instead.
- m
- The master should send mail to USER when the
- transfer is complete.
- SIZE
- This only appears if Taylor UUCP or FSUUCP size
- negotiation is being used. It specifies the largest file
- which the master is prepared to accept (when using SVR4
- UUCP or QFT, this was specified in the -U option during
- the initial handshake).
-
- The slave then responds with an R command response. FSUUCP does
- not support R requests, and always responds with RN2.
- RY MODE
- The slave is willing to send the file, and file transfer
- begins. MODE is the octal mode of the file on the slave.
- The master treats this just as the slave does the MODE
- argument in the send command, q.v.
- RN2
- The slave is not willing to send the file, either because
- it is not permitted or because the file does not exist.
- This implies that the file request will never succeed.
- RN6
- This is only used by Taylor UUCP size negotiation. It
- means that the file is too large to send, either because
- of the size limit specifies by the master or because the
- slave considers it too large. The file transfer might
- succeed later, or it might not (this will be cleared up in
- a later release of Taylor UUCP).
-
- If the slave responds with RY, a file transfer begins. When the
- file transfer is complete, the master sends a C command. The
- slave pretty much ignores this, although it may log it.
- CY
- The file transfer was successful.
- CN5
- The temporary file could not be moved into the final
- location.
-
- After the C command response has been sent (in the RY case) or
- immediately (in an RN case) the master will send another command.
-
- master: X FROM TO USER -OPTIONS
- The X and the - are literal characters. This is a request by the
- master to, in essence, execute uucp on the slave. The slave
- should execute "uucp FROM TO".
- FROM
- This is the name of the file or files on the slave which
- the master wishes to transfer. Any wildcards are expanded
- on the slave. If the master is requesting that the files
- be transferred to itself, the request would normally
- contain wildcard characters, since otherwise an `R'
- command would suffice. The master can also use this
- command to request that the slave transfer files to a
- third system.
- TO
- This is the name of the file or directory to which the
- files should be transferred. This will normally use a
- UUCP name. For example, if the master wishes to receive
- the files itself, it would use "master!path".
- USER
- The name of the user who requested the transfer.
- OPTIONS
- A list of options to control the transfer. It is not
- clear which, if any, options are supported by most UUCP
- packages.
-
- The slave then responds with an X command response. FSUUCP does
- not support X requests, and always responds with XN.
- XY
- The request was accepted, and the appropriate file
- transfer commands have been queued up for later
- processing.
- XN
- The request was denied. No particular reason is given.
-
- In either case, the master will then send another command.
-
- master: H
- This is used by the master to hang up the connection. The slave
- will respond with an H command response.
- HY
- The slave agrees to hang up the connection. In this case
- the master sends another HY command. In some UUCP
- packages the slave will then send a third HY command. At
- this point the protocol is shut down, and the final
- handshake is begun.
- HN
- The slave does not agree to hang up. In this case the
- master and the slave exchange roles. The next command
- will be sent by the former slave, which is the new master.
- The roles may be reversed several times during a single
- connection.
-
- After the protocol has been shut down, the final handshake is
- performed. This handshake has no real purpose, and some UUCP packages
- simply drop the connection rather than do it (in fact, some will drop
- the connection immediately after both sides agree to hangup, without
- even closing down the protocol).
-
- caller: \020OOOOOO\000
- called: \020OOOOOOO\000
-
- That is, the calling UUCP sends six O's and the called UUCP replies
- with seven O's. Some UUCP packages always send six O's.
-
- ------------------------------
-
- From: UUCP-g
- Subject: What is the 'g' protocol?
-
- The 'g' protocol is a packet based flow controlled error correcting
- protocol that requires an eight bit clear connection. It is the
- original UUCP protocol, and is supported by all UUCP implementations.
- Many implementations of it are only able to support small window and
- packet sizes, specifically a window size of 3 and a packet size of 64
- bytes, but the protocol itself can support up to a window size of 7
- and a packet size of 4096 bytes. Complaints about the inefficiency of
- the 'g' protocol generally refer to specific implementations, rather
- than to the correctly implemented protocol.
-
- The 'g' protocol was originally designed for general packet drivers,
- and thus contains some features that are not used by UUCP, including
- an alternate data channel and the ability to renegotiate packet and
- window sizes during the communication session.
-
- The 'g' protocol is spoofed by many Telebit modems. When spoofing is
- in effect, each Telebit modem uses the 'g' protocol to communicate
- with the attached computer, but the data between the modems is sent
- using a Telebit proprietary error correcting protocol. This allows
- for very high throughput over the Telebit connection, which, because
- it is half-duplex, would not normally be able to handle the 'g'
- protocol very well at all.
-
- This discussion of the 'g' protocol explains how it works, but does
- not discuss useful error handling techniques. Some discussion of this
- can be found in Jamie E. Hanrahan's paper, cited above.
-
- All 'g' protocol communication is done with packets. Each packet
- begins with a six byte header. Control packets consist only of the
- header. Data packets contain additional data.
-
- The header is as follows:
-
- \020
- Every packet begins with a ^P.
- k (1 <= k <= 9)
- The k value is always 9 for a control packet. For a data
- packet, the k value indicates how must data follows the six
- byte header. The amount of data is 2 ** (k + 4), where **
- indicates exponentiation. Thus a k value of 1 means 32 data
- bytes and a k value of 8 means 4096 data bytes. The k value
- for a data packet must be between 1 and 8 inclusive.
- checksum low byte
- checksum high byte
- The checksum value is described below.
- control byte
- The control packet indicates the type of packet, and is
- described below.
- xor byte
- This byte is the xor of k, the checksum low byte, the checksum
- high byte and the control byte (i.e., the second, third,
- fourth and fifth header bytes). It is used to ensure that the
- header data is valid.
-
- The control byte in the header is composed of three bit fields,
- referred to here as TT (two bits), XXX (three bits) and YYY (three
- bits). The control is TTXXXYYY, or (TT << 6) + (XXX << 3) + YYY.
-
- The TT field takes on the following values:
- 0
- This is a control packet. In this case the k byte in the
- header must be 9. The XXX field indicates the type of control
- packet; these types are described below.
- 1
- This is an alternate data channel packet. This is not used by
- UUCP.
- 2
- This is a data packet, and the entire contents of the attached
- data field (whose length is given by the k byte in the header)
- are valid. The XXX and YYY fields are described below.
- 3
- This is a short data packet. Let the length of the data field
- (as given by the k byte in the header) be L. Let the first
- byte in the data field be B1. If B1 is less than 128 (if the
- most significant bit of B1 is 0), then there are L - B1 valid
- bytes of data in the data field, beginning with the second
- byte. If B1 >= 128, let B2 be the second byte in the data
- field. Then there are L - ((B1 & 0x7f) + (B2 << 7)) valid
- bytes of data in the data field, beginning with the third
- byte. In all cases L bytes of data are sent (and all data
- bytes participate in the checksum calculation) but some of the
- trailing bytes may be dropped by the receiver. The XXX and
- YYY fields are described below.
-
- In a data packet (short or not) the XXX field gives the sequence
- number of the packet. Thus sequence numbers can range from 0 to 7,
- inclusive. The YYY field gives the sequence number of the last
- correctly received packet.
-
- Each communication direction uses a window which indicates how many
- unacknowledged packets may be transmitted before waiting for an
- acknowledgement. The window may range from 1 to 7, and may be
- different in each direction. For example, if the window is 3 and the
- last packet acknowledged was packet number 6, packet numbers 7, 0 and
- 1 may be sent but the sender must wait for an acknowledgement before
- sending packet number 2. This acknowledgement could come as the YYY
- field of a data packet or as the YYY field of a RJ or RR control
- packet (described below).
-
- Each packet must be transmitted in order (the sender may not skip
- sequence numbers). Each packet must be acknowledged, and each packet
- must be acknowledged in order.
-
- In a control packet, the XXX field takes on the following values:
- 1 CLOSE
- The connection should be closed immediately. This is
- typically sent when one side has seen too many errors and
- wants to give up. It is also sent when shutting down the
- protocol. If an unexpected CLOSE packet is received, a CLOSE
- packet should be sent in reply and the 'g' protocol should
- halt, causing UUCP to enter the final handshake.
- 2 RJ or NAK
- The last packet was not received correctly. The YYY field
- contains the sequence number of the last correctly received
- packet.
- 3 SRJ
- Selective reject. The YYY field contains the sequence number
- of a packet that was not received correctly, and should be
- retransmitted. This is not used by UUCP, and most
- implementations will not recognize it.
- 4 RR or ACK
- Packet acknowledgement. The YYY field contains the sequence
- number of the last correctly received packet.
- 5 INITC
- Third initialization packet. The YYY field contains the
- maximum window size to use.
- 6 INITB
- Second initialization packet. The YYY field contains the
- packet size to use. It requests a size of 2 ** (YYY + 5).
- Note that this is not the same coding used for the k byte in
- the packet header (it is 1 less). Most UUCP implementations
- that request a packet size larger than 64 bytes can handle any
- packet size up to that specified.
- 7 INITA
- First initialization packet. The YYY field contains the
- maximum window size to use.
-
- The checksum of a control packet is simply 0xaaaa - the control byte.
-
- The checksum of a data packet is 0xaaaa - (CHECK ^ the control byte),
- where ^ denotes exclusive or, and CHECK is the result of the following
- routine as run on the contents of the data field (every byte in the
- data field participates in the checksum, even for a short data
- packet). Below is the routine used by Taylor UUCP; it is a slightly
- modified version of a routine which John Gilmore patched from G.L.
- Chesson's original paper. The z argument points to the data and the c
- argument indicates how much data there is.
-
- int
- igchecksum (z, c)
- register const char *z;
- register int c;
- {
- register unsigned int ichk1, ichk2;
-
- ichk1 = 0xffff;
- ichk2 = 0;
-
- do
- {
- register unsigned int b;
-
- /* Rotate ichk1 left. */
- if ((ichk1 & 0x8000) == 0)
- ichk1 <<= 1;
- else
- {
- ichk1 <<= 1;
- ++ichk1;
- }
-
- /* Add the next character to ichk1. */
- b = *z++ & 0xff;
- ichk1 += b;
-
- /* Add ichk1 xor the character position in the buffer counting from
- the back to ichk2. */
- ichk2 += ichk1 ^ c;
-
- /* If the character was zero, or adding it to ichk1 caused an
- overflow, xor ichk2 to ichk1. */
- if (b == 0 || (ichk1 & 0xffff) < b)
- ichk1 ^= ichk2;
- }
- while (--c > 0);
-
- return ichk1 & 0xffff;
- }
-
- When the 'g' protocol is started, the calling UUCP sends an INITA
- control packet with the window size it wishes the called UUCP to use.
- The called UUCP responds with an INITA packet with the window size it
- wishes the calling UUCP to use. Pairs of INITB and INITC packets are
- then similarly exchanged. When these exchanges are completed, the
- protocol is considered to have been started.
-
- When a UUCP package transmits a command, it sends one or more data
- packets. All the data packets will normally be complete, although
- some UUCP packages may send the last one as a short packet. The
- command string is sent with a trailing null byte, to let the receiving
- package know when the command is finished. Some UUCP packages require
- the last byte of the last packet sent to be null, even if the command
- ends earlier in the packet. Some packages may require all the
- trailing bytes in the last packet to be null, but I have not confirmed
- this.
-
- When a UUCP package sends a file, it will send a sequence of data
- packets. The end of the file is signalled by a short data packet
- containing zero valid bytes (it will normally be preceeded by a short
- data packet containing the last few bytes in the file).
-
- Note that the sequence numbers cover the entire communication session,
- including both command and file data.
-
- When the protocol is shut down, each UUCP package sends a CLOSE
- control packet.
-
- ------------------------------
-
- From: UUCP-f
- Subject: What is the 'f' protocol?
-
- The 'f' protocol is a seven bit protocol which checksums an entire
- file at a time. It only uses the characters between \040 and \176
- (ASCII space and ~) inclusive as well as the carriage return
- character. It can be very efficient for transferring text only data,
- but it is very inefficient at transferring eight bit data (such as
- compressed news). It is not flow controlled, and the checksum is
- fairly insecure over large files, so using it over a serial connection
- requires handshaking (XON/XOFF can be used) and error correcting
- modems. Some people think it should not be used even under those
- circumstances.
-
- I believe the 'f' protocol originated in BSD versions of UUCP. It was
- originally intended for transmission over X.25 PAD links.
-
- The 'f' protocol has no startup or finish protocol. However, both
- sides typically sleep for a couple of seconds before starting up,
- because they switch the terminal into XON/XOFF mode and want to allow
- the changes to settle before beginning transmission.
-
- When a UUCP package transmits a command, it simply sends a string
- terminated by a carriage return.
-
- When a UUCP package transmits a file, each byte b of the file is
- translated according to the following table:
-
- 0 <= b <= 037: 0172, b + 0100 (0100 to 0137)
- 040 <= b <= 0171: b ( 040 to 0171)
- 0172 <= b <= 0177: 0173, b - 0100 ( 072 to 077)
- 0200 <= b <= 0237: 0174, b - 0100 (0100 to 0137)
- 0240 <= b <= 0371: 0175, b - 0200 ( 040 to 0171)
- 0372 <= b <= 0377: 0176, b - 0300 ( 072 to 077)
-
- That is, a byte between \040 and \171 inclusive is transmitted as is,
- and all other bytes are prefixed and modified as shown.
-
- When all the file data is sent, a seven byte sequence is sent: two
- bytes of \176 followed by four ASCII bytes of the checksum as printed
- in base 16 followed by a carriage return. For example, if the
- checksum was 0x1234, this would be sent: "\176\1761234\r".
-
- The checksum is initialized to 0xffff. For each byte that is sent it
- is modified as follows (where b is the byte before it has been
- transformed as described above):
-
- /* Rotate the checksum left. */
- if ((ichk & 0x8000) == 0)
- ichk <<= 1;
- else
- {
- ichk <<= 1;
- ++ichk;
- }
-
- /* Add the next byte into the checksum. */
- ichk += b;
-
- When the receiving UUCP sees the checksum, it compares it against its
- own calculated checksum and replies with a single character followed
- by a carriage return.
- G
- The file was received correctly.
- R
- The checksum did not match, and the file should be resent from
- the beginning.
- Q
- The checksum did not match, but too many retries have occurred
- and the communication session should be abandoned.
-
- The sending UUCP checks the returned character and acts accordingly.
-
- ------------------------------
-
- From: UUCP-t
- Subject: What is the 't' protocol?
-
- The 't' protocol is intended for use on links which provide reliable
- end-to-end connections, such as TCP. It does no error checking or
- flow control, and requires an eight bit clear channel.
-
- I believe the 't' protocol originated in BSD versions of UUCP.
-
- When a UUCP package transmits a command, it first gets the length of
- the command string, C. It then sends ((C / 512) + 1) * 512 bytes (the
- smallest multiple of 512 which can hold C bytes plus a null byte)
- consisting of the command string itself followed by trailing null
- bytes.
-
- When a UUCP package sends a file, it sends it in blocks. Each block
- contains at most 1024 bytes of data. Each block consists of four
- bytes containing the amount of data in binary (most significant byte
- first, the same format as used by the Unix function htonl) followed by
- that amount of data. The end of the file is signalled by a block
- containing zero bytes of data.
-
- ------------------------------
-
- From: UUCP-e
- Subject: What is the 'e' protocol?
-
- The 'e' protocol is similar to the 't' protocol. It does no flow
- control or error checking and is intended for use over networks
- providing reliable end-to-end connections, such as TCP.
-
- The 'e' protocol originated in versions of HDB UUCP.
-
- When a UUCP package transmits a command, it simply sends the command
- as an ASCII string terminated by a null byte.
-
- When a UUCP package transmits a file, it sends the complete size of
- the file as an ASCII decimal number. The ASCII string is padded out
- to 20 bytes with null bytes (i.e. if the file is 1000 bytes long, it
- sends "1000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"). It then sends the
- entire file.
-
- ------------------------------
-
- From: UUCP-G
- Subject: What is the 'G' protocol?
-
- The 'G' protocol is used by SVR4 UUCP. It is identical to the 'g'
- protocol, except that it is possible to modify the window and packet
- sizes. The SVR4 implementation of the 'g' protocol reportedly is
- fixed at a packet size of 64 and a window size of 7. Supposedly SVR4
- chose to implement a new protocol using a new letter to avoid any
- potential incompatibilities when using different packet or window
- sizes.
-
- Most implementations of the 'g' protocol that accept packets larger
- than 64 bytes will also accept packets smaller than whatever they
- requested in the INITB packet. The SVR4 'G' implementation is an
- exception; it will only accept packets of precisely the size it
- requests in the INITB packet.
-
- ------------------------------
-
- From: UUCP-x
- Subject: What is the 'x' protocol?
-
- The 'x' protocol is used in Europe (and probably elsewhere) with
- machines that contain an builtin X.25 card and can send eight bit data
- transparently across X.25 circuits, without interference from the X.28
- or X.29 layers. The protocol sends packets of 512 bytes, and relies
- on a write of zero bytes being read as zero bytes without stopping
- communication. It originally appeared in some version of HDB UUCP.
-
- ------------------------------
-
- From: UUCP-d
- Subject: What is the 'd' protocol?
-
- This is apparently used for DataKit muxhost (not RS-232) connections.
- No file size is sent. When a file has been completely transferred, a
- write of zero bytes is done; this must be read as zero bytes on the
- other end.
-
- ------------------------------
-
- From: UUCP-h
- Subject: What is the 'h' protocol?
-
- This is apparently used in some places with HST modems. It does no
- error checking, and is not that different from the 't' protocol. I
- don't know the details.
-
- ------------------------------
-
- From: Thanks
- Subject: Thanks
-
- Besides the papers and information acknowledged at the top of this
- article, the following people have contributed help, advice,
- suggestions and information:
- Earle Ake 513-429-6500 <ake@Dayton.SAIC.COM>
- cambler@nike.calpoly.edu (Christopher J. Ambler)
- jhc@iscp.bellcore.com (Jonathan Clark)
- celit!billd@UCSD.EDU (Bill Davidson)
- erik@pdnfido.fidonet.org
- Matthew Farwell <dylan@ibmpcug.co.uk>
- "Jonathan I. Kamens" <jik@pit-manager.MIT.EDU>
- "David J. MacKenzie" <djm@eng.umd.edu>
- jum@helios.de (Jens-Uwe Mager)
- david nugent <david@csource.oz.au>
- Stephen.Page@prg.oxford.ac.uk
- joey@tessi.UUCP (Joey Pruett)
- James Revell <revell@uunet.uu.net>
- Larry Rosenman <ler@lerami.lerctr.org>
- Rich Salz <rsalz@bbn.com>
- kls@ditka.Chicago.COM (Karl Swartz)
- Dima Volodin <dvv@hq.demos.su>
- jon@console.ais.org (Jon Zeeff)
-
- ------------------------------
-
- End of UUCP Internals Frequently Asked Questions
- ******************************
- --
- Ian Taylor | ian@airs.com | First to identify quote wins free e-mail message:
- ``Things are either isolated units, or they form one inseparable whole. If
- that whole be God, then all is well; but if aimless chance, at least you
- need not be aimless also.''
- Xref: bloom-picayune.mit.edu rec.food.veg:23730 news.answers:4538
- Path: bloom-picayune.mit.edu!enterpoop.mit.edu!news.media.mit.edu!micro-heart-of-gold.mit.edu!wupost!zaphod.mps.ohio-state.edu!ub!acsu.buffalo.edu!marcotte
- From: marcotte@acsu.buffalo.edu (Brian Marcotte)
- Newsgroups: rec.food.veg,news.answers
- Subject: rec.food.veg FREQUENTLY ASKED QUESTIONS LIST (FAQ)
- Summary: The following contains general information on all aspects
- of vegetarianism, and answers to common questions.
- Keywords: FAQ
- Message-ID: <Bz2zMx.85y@acsu.buffalo.edu>
- Date: 11 Dec 92 06:06:32 GMT
- Expires: Fri, 1 Jan 1993 05:00:00 GMT
- Sender: nntp@acsu.buffalo.edu
- Followup-To: rec.food.veg
- Organization: State University of New York at Buffalo
- Lines: 951
- Approved: news-answers-request@MIT.Edu
- Nntp-Posting-Host: autarch.acsu.buffalo.edu
-
-
- Archive-Name: vegetarian-faq
- Last-Modified: 1 Dec 1992
-
-
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
- This list is posted at the beginning of each month. The expiration
- date is set to the first of the following month, so this file should
- always be available (most sites).
-
- Requests for it to be mailed to you are welcomed.
-
- The keeper of the FAQ wishes to thank everyone who contributed to this
- list -- your help was greatly appreciated.
-
- Suggestions, comments, additions and constructive criticisms can be
- mailed to:
-
- marcotte@cs.buffalo.edu (Brian Marcotte)
- or marcotte@acsu.buffalo.edu
-
- If you send me something, and I don't respond, and I don't include it
- in the next edition, don't hesitate to write again, to see if I "lost"
- your mail. I usually include everything that is sent to me in one way
- or another.
-
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
- Rec.Food.Veg's Most Frequently Asked Questions List
-
- ----------------------------------------
-